跳到主要内容

实战-terrrform方式安装jenkins-2022.4.17-测试成功

实战:terrrform方式安装jenkins-泽阳-2022.4.17(测试成功)

image-20220414085747500

目录

[toc]

实验环境

win10笔记本
1台虚机 centos7.9 vmworkstation
jenkins/jenkins:2.332.2-centos7-jdk8
docker 20.10.11
Terraform v1.1.8

实验软件

链接:https://pan.baidu.com/s/15VlZHrinn9kiy8kf9nZkDw?pwd=caih 提取码:caih 2022.4.13-实验软件-使用TF来起一个jenkins容器

image-20220416231435863

前置条件

  • docker环境已安装(本次版本:20.10.11)

0、安装jdk环境

⚠️ 我们测试环境,是在一台虚机上跑了一个jenkins容器。但后面添加一个jenkins agent时,是将这个虚机作为其agent使用,因此这个虚机也要安装java环境的!!!

(1)下载jdk软件
[root@devops ~]#wget https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/8/jdk/x64/linux/OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz --no-check-certificate

image-20220414185032534

image-20220414185225338

(2)配置jdk环境
[root@devops ~]#tar zxf OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz -C /usr/local/
[root@devops ~]#cd /usr/local/jdk8u322-b06/
[root@devops jdk8u322-b06]#pwd
/usr/local/jdk8u322-b06
[root@devops jdk8u322-b06]#vim /etc/profile
export JAVA_HOME=/usr/local/jdk8u322-b06
export PATH=$JAVA_HOME/bin:$PATH
[root@devops jdk8u322-b06]#source /etc/profile

(3)验证
[root@devops jdk8u322-b06]#java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (Temurin)(build 25.322-b06, mixed mode)

1、安装Terraform

1、下载二进制包

https://www.terraform.io/downloads

image-20220412200555892

2、安装步骤

(1)上传下载好的二进制包到服务器
[root@devops ~]#ll -h terraform_1.1.8_linux_amd64.zip
-rw-r--r-- 1 root root 18M Apr 12 19:59 terraform_1.1.8_linux_amd64.zip
[root@devops ~]#unzip terraform_1.1.8_linux_amd64.zip
Archive: terraform_1.1.8_linux_amd64.zip
inflating: terraform
[root@devops ~]#ll -h terraform

(2)移动二进制文件到PATH路径
-rwxr-xr-x 1 root root 61M Apr 8 00:54 terraform
[root@devops ~]#mv terraform /usr/local/bin/

(3)验证
[root@devops ~]#terraform version
Terraform v1.1.8
on linux_amd64

3、vscode想要对.tf文件语法的话,这里需要安装Terraform插件:

image-20220412202300625

image-20220412202356331

2、定义Jenkins容器的资源tf文件

1️⃣ 创建Jenkins数据目录

[root@devops ~]#mkdir -p /data/devops4/jenkins_home
[root@devops ~]#chmod -R 777 /data/devops4/jenkins_home/

2️⃣ 定义Jenkins容器的资源tf文件

在devops目录下创建如下2个文件:

jenkins.tf

### 定义docker镜像(jenkins.tf)
resource "docker_image" "jenkins" {
name = "jenkins/jenkins:2.332.2-centos7-jdk8"
keep_locally = true //资源销毁后不会删除本地镜像
}

resource "docker_container" "jenkins" {
image = docker_image.jenkins.name
name = "devops_tutorial"
ports {
internal = 8080
external = 8080
}
ports {
internal = 50000
external = 50000
}

volumes{
container_path = "/var/jenkins_home"
host_path = "/data/devops4/jenkins_home" //这个目录要提前在主机里进行创建
}
}

main.tf

# 定义provider(main.tf)
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
version = "~> 2.13.0"
}
}
}

provider "docker" {}

3、terraform init 初始化

[root@devops remote-vscode]#terraform init

image-20220414084938622

4、terraform plan 预览

[root@devops remote-vscode]#terraform plan

image-20220414085011712

5、terraform apply 部署

[root@devops remote-vscode]#terraform apply

image-20220414085052383

6、验证

[root@devops remote-vscode]#docker ps |grep jenkins

image-20220414085145859

http://172.29.9.101:8080/

image-20220414085225027

注意事项

📍 什么是Terraform?

Teffraform:基础设施即代码!

IaC:基础设施即代码。

现在,基本什么都代码,配置即代码,基础设置即代码;

管理docker容器
- docker命令
- docker-compose
- 本地用tf来管理docker环境: tf有一个provider,一个插件,它是支持管docker的。所以,我们后面一个tf模板就把整个实验环境就跑起来了,最终可以一键拉起来。

但是TF比较厉害,它的插件支持k8s,就是你不想使用yaml来管理k8s里的资源,那么TF也是可以通过插件来管理k8s里的资源的。此时,就行就需要你来写Tf的provider插件来着,但是还是yaml好使。

这个TF太牛了!!(tf:管理你的基础设施的。)
但这个工具也存在一定的危险性,我可以一键去创建,也可以一键去销毁。
老师大力推荐!

📍 ansible和terraform的区别?

答:ansible和TF他们不是一个级别的东西: TF它管理的是你的服务器,其实TF主要是针对这个云供应商的,创建这些机器、网络、vpc…… ansible是实现基础设置之上的,应用部署这块的; 他两之间可以结合去用;

📍 待提问:provider "docker" {……} 2375端口问题

image-20220412201923930

如果是本机的话,provider "docker" {……}这里可以省略!

🍀 老师这里有监听到这个包2375端口,但是为什么我自己的没有呢?但是可以可以成功部署jenkins容器。

老师说是docker服务默认监听的端口。。。。;😥

老师现象:

image-20231022082948969

自己现象:

image-20220416101003652

📍 搁置问题:如何在terraform里添加env,老师当时添加时报错了。。。

image-20220412215808332

📍 这个terraform网站是真的慢。。。

image-20220412213831635

📍 terraform命令

terraform init  初始化
terraform plan 预览 //看下它的变更
terraform apply 部署

🍀 初始化

terraform init

image-20220412210533578

插件下载后存放位置:

image-20220412211501990

🍀 预览

terraform plan 

image-20220412211629951

image-20220412211710758

🍀 部署

terraform apply

image-20220412211745866

image-20220412211840282

🍀 销毁资源命令

terraform destroy

image-20220412210437676

📍 terraform使用方法

registry.terraform.io是terraform的仓库

image-20220412204044454

点击Browse Provider

image-20220412204132272

搜索docker

image-20220412204221416

image-20220412204251325

image-20220412204316200

使用文档:

image-20220412204405864

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码 x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号 《云原生架构师实战》

image-20230107215126971

🍀 语雀

https://www.yuque.com/xyy-onlyone

image-20230306221144511

🍀 csdn https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎 https://www.zhihu.com/people/foryouone

image-20230107215203185

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

image-20230107215844356